#ifndef __SCENEFACTORY__
#define __SCENEFACTORY__

#include "SimpleScene.h"
#include "FewCircles.h"
#include "BiggerScene.h"
#include "MeshScene.h"
#include "CornellBox.h"
#include "SibanekScene.h"
#include "TexturedBox.h"
#include "TestTeextureScene.h"
#include "TownScene.h"

namespace Engine
{
	class SceneFactory
	{
	public:
		static Scene* GetScene(int p_sceneType)
		{
			switch (p_sceneType)
			{
			case 1:
				return new SimpleScene();

			case 5:
				return new CornelBox();

			case 6:
				return new SibanekScene();

			case 7:
				return new TexturedBox();

			case 8:
				return new TestTextureScene();

			case 9:
				return new TownScene();

			default:
				break;
			}
		}

		static Scene* GetScene(int p_sceneType, int p_path)
		{
			switch (p_sceneType)
			{
			case 1:
				return new SimpleScene();

			case 5:
				return new CornelBox();

			case 6:
				return new SibanekScene();

			case 7:
				return new TexturedBox();

			case 8:
				return new TestTextureScene();

			case 9:
				return new TownScene(p_path);

			default:
				break;
			}
		}

		static Scene* GetScene(int p_sceneType, string p_seedString, string p_pathConfigFile)
		{
			switch (p_sceneType)
			{
			case 1:
				return new SimpleScene();

			case 5:
				return new CornelBox();

			case 6:
				return new SibanekScene();

			case 7:
				return new TexturedBox();

			case 8:
				return new TestTextureScene();

			case 9:
				return new TownScene(p_seedString, p_pathConfigFile);

			default:
				break;
			}
		}


	};

}

#endif // !__SCENEFACTORY__
